package C.e.collection;

import java.util.*;

/**
 * JDK1.8之后推出了一个新特性：Lambda表达式
 * 作用：可以更简洁的代码实现匿名类部类
 * 规则：
 * 1.不是任何匿名内部类都可以转换为Lambda表达式
 * 2.Lambda表达式对接口的要求：只能是函数式接口
 * 3.函数式接口：接口中要求实现类必须重写的方法只有一个
 */
public class LambdaDemo {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();

        //匿名内部类写法
        Collections.sort(list, new Comparator<String>() {
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();
            }
        });
        //Lambda表达式写法:中的参数类型可以不写
        Collections.sort(list,(o1,o2)->{
            return o1.length()-o2.length();
                });
        //Lambda表达式方法体中只有一句代码，方法体的{}可以不写，如果这句话中有return，也一并不写
        Collections.sort(list,((o1, o2) -> o1.length()-o2.length()));

        //Lambda表达是的方法参数如果只有一个，那么（）可以忽略不写
















    }
}
